home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / asmutil / d86v322.zip / D06.DOC < prev    next >
Text File  |  1989-12-15  |  20KB  |  434 lines

  1. CHAPTER 6   MEMORY DISPLAY OPTIONS
  2.  
  3.  
  4. Memory Display Windows
  5.  
  6. The debugger allows you to set up windows into your program
  7. memory space. Using these windows, you can view memory in a
  8. variety of formats.  The windows will remain in effect until you
  9. cancel them; updating themselves automatically if the memory
  10. changes.
  11.  
  12. There are six single-line memory windows always present, in the
  13. lower right portion of the screen.  In addition, you can have the
  14. upper-right window display a 14-line page of memory values.
  15.  
  16.  
  17. Single-Line Memory Windows
  18.  
  19. A single-line memory window line consists of a specification,
  20. typed in by you, followed by a display, supplied by the debugger.
  21.  
  22. To type in a specification on any one of window lines 1 through
  23. 6, simply type the associated digit, 1 through 6, when the
  24. debugger is in its main command mode.  The cursor will jump to
  25. the beginning of the memory-window line you are specifying.  You
  26. then type in a display format specification, followed by the
  27. address of memory you want displayed.
  28.  
  29. The simplest form of the display format specification is a single
  30. letter, signifying one of the display types available.  The
  31. choices are:
  32.  
  33.     B  for hexadecimal bytes
  34.     W  for hexadecimal words
  35.     N  for decimal bytes
  36.     D  for decimal words
  37.     Q  for octal bytes
  38.     O  for octal words
  39.     T  for text; each byte reduced to one ASCII display
  40.           character
  41.     A  for ASCII text, each byte occupying 2 display
  42.           characters (the exact display is spelled out later
  43.           in this chapter)
  44.     C  for ASCII characters, occupying 2 bytes if needed,
  45.           otherwise one
  46.  
  47. A format specification of one of the above letters will cause the
  48. debugger to display the array of bytes starting at the address
  49. you specify, in the format indicated by the letter, as long as
  50. there is room on the line. All letters in a format specification
  51. (or in any other context in the debugger) can be typed in either
  52. upper or lower case.
  53.                                                               6-2
  54.  
  55. The format specification should be terminated by a comma.  After
  56. the comma (and an optional space), you type the address of memory
  57. you want displayed. This consists of two values, the segment
  58. followed by the offset.  The values should be separated by a
  59. comma. You can omit the segment value if you wish: in that case,
  60. the current value of DS is used. The debugger reminds you that
  61. you have specified this option by following what you type with 2
  62. commas instead of one.
  63.  
  64. The value you type can take one of the following forms:
  65.  
  66.    a. a numeric constant, whose format is just as in the assembly
  67.       language (leading zero means default hex, otherwise default
  68.       decimal)
  69.  
  70.    b. a register name (IP is now accepted as a register name)
  71.  
  72.    c. a user symbol from the assembly language program being
  73.       debugged.
  74.  
  75. After you type the address specification, you hit the ENTER key,
  76. and the debugger fills out the rest of the line with the memory
  77. display.
  78.  
  79. For example, if you want to display hex bytes starting at 01000
  80. hex on display line 2, you type 2b,01000<ENTER>. The cursor jumps
  81. to the line immediately when you type the 2, and it displays the
  82. b,01000 on the line as you type it.  The b says you want hex
  83. bytes, and the 01000 has a leading zero to signify a hexadecimal
  84. address, not decimal.  When you press the ENTER key, the debugger
  85. displays two commas, followed by the hex bytes.  If the memory is
  86. zeroed, you will see 00 00 00 00 00 etc. to the end of the
  87. display line.
  88.  
  89.  
  90. Erasing Memory Display Lines
  91.  
  92. Any memory display window that you specify will remain in effect,
  93. always updated to show the latest memory contents, until you
  94. explicitly erase it. To erase a window, you type the number of
  95. the window, followed by a blank.  The line will also be erased if
  96. you start typing a format specification, and you hit the ENTER
  97. key before you get to your address specification.
  98.  
  99. In the coming sections, many of the examples assume (and they say
  100. so) that your display is blank before you type in the example.
  101. You can always get a blank display by typing in each number
  102. followed by a blank: "1 2 3 4 5 6 ".
  103.  
  104. If you accidentally type a digit and DON'T want to erase the line
  105. your cursor has jumped to, press the ESC key to return to the
  106. main command mode.
  107.                                                               6-3
  108.  
  109. Continuation Lines
  110.  
  111. You may continue a memory display window onto the next line, by
  112. placing a double quote mark " at the beginning of the next line.
  113. You may do this in one of two ways: you may type the number of
  114. the next line, followed by the double quote mark; or you may
  115. simply type the double quote mark at the command level.  The
  116. first method allows you to specify which window line you want
  117. continued, if there is more than one.  The second method is more
  118. convenient to use.  It places the quote mark on the last blank
  119. line that immediately follows a non-blank line.
  120.  
  121. You may continue placing " marks on as many lines as you have,
  122. creating a multi-line display.
  123.  
  124. The debugger follows the " mark with the address of memory being
  125. displayed, followed by the memory, according to the start of the
  126. type specification of the line being continued.  The memory
  127. display is aligned with the display of above line.
  128.  
  129. If you are creating a multi-line display, and your specification
  130. is a long one, you may wish to start the display at the beginning
  131. of the next line, rather than after the specification on the
  132. first line.  This will often give you more room.  You do this by
  133. terminating the format specification with a slash / instead of a
  134. comma.  For example, to display many hex bytes at the array
  135. BYTE_ARRAY, type 1b/byte_array<ENTER> followed by five double
  136. quote marks, when the memory display is empty.
  137.  
  138.  
  139. Mixed Format Specification
  140.  
  141. Instead of having all your bytes or words on a line displayed in
  142. the same format, you can mix your formats.  You do this by
  143. providing more than one letter in your format specification.  The
  144. debugger will display one memory unit for each letter-type you
  145. specify.  The line will be filled out with the last type given.
  146. For example, if you type 3nwb,01000<ENTER>, you will get a
  147. display on memory line 3 of the decimal byte at 01000, the hex
  148. word at 01001, and an array of hex bytes starting at 01003.
  149.  
  150.  
  151. Numbers in a Format Specification
  152.  
  153. You may precede any letter in a format specification with a
  154. number up to 255. The effect is the same as if you had repeated
  155. the letter the given number of times.  For example, if you type 1
  156. to go to memory line 1, followed by 4w10tb,02000<ENTER>, you will
  157. get 4 hex words at 02000, 10 text characters at 02008, and an
  158. array of hex bytes from 02012 filling out the rest of the line.
  159.                                                               6-4
  160.  
  161. You may also end your format specification with a number up to
  162. 255.  This will cause the entire specification to be repeated the
  163. given number of times. If there is room on the line for the full
  164. number given, the display will stop there-- there will be no
  165. repeating of the last type byte.  If there is not room on the
  166. line for the full number of global iterations, the debugger will
  167. stop at the end of the last iteration that would fit.  For
  168. example, the specification b8 causes 8 hex bytes to be displayed,
  169. and the remainder of the display line to be blank.  The
  170. specification b3w9 will cause the debugger to try to output 9
  171. records, each consisting of a hex byte followed by 3 hex words.
  172. After putting out 2 such records, the debugger will see that
  173. there is not room for a third full record, so it will stop.  This
  174. stopping at the record boundary allows you to continue the
  175. display, with correct alignment, on subsequent lines.
  176.  
  177.  
  178. Spacing Between Memory Display Units
  179.  
  180. In general, the debugger provides a space between each unit (byte
  181. or word) it displays.  There is an exception, however: the
  182. debugger will not space between adjacent text characters (A,C, or
  183. T specifications).
  184.  
  185. There are special specifiers G, J, and M, described in the
  186. sect